home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 4 / QRZ Ham Radio Callsign Database - Volume 4.iso / files / dsp / 56ktools / a56_10sh.z / a56_10sh / examples / memtest.a56 < prev    next >
Text File  |  1992-06-06  |  2KB  |  116 lines

  1. ; simple memory test - runs test patterns through off-chip RAM
  2. ;
  3. ; written by Quinn Jensen (jensenq@npd.novell.com)
  4. ;
  5.  
  6. include 'ioequ.inc'
  7.  
  8. #define MSG(m) movep    #(m)<<7,x:m_pbd
  9.  
  10. start    equ    $0000
  11. len    equ    $ff00
  12.  
  13.     org    p:$0000
  14.     jmp    begin
  15.  
  16.     org    p:$40
  17. begin
  18.     movep    #$0f0f,x:m_bcr    ;wait states
  19.     movep    #0,x:m_pbc    ;port B: parallel I/O
  20.     movep    #-1,x:m_pbddr    ;port B: all output
  21.     MSG($1)
  22.     MSG($1|3<<4)        ;clear strobes
  23.  
  24. loop
  25.     move    #>$000000,x0    ;pattern
  26.     jsr    <dopat
  27.     move    #>$AAAAAA,x0    ;pattern
  28.     jsr    <dopat
  29.     jsr    <iatest
  30.     move    #>$555555,x0    ;pattern
  31.     jsr    <dopat
  32.     jsr    <iatest
  33.     move    #>$FFFFFF,x0    ;pattern
  34.     jsr    <dopat
  35.     move    #>$DEADEE,x0    ;pattern
  36.     jsr    <dopat
  37.     jsr    <iatest
  38.     move    #>$123456,x0    ;pattern
  39.     jsr    <dopat
  40.     move    #>$876543,x0    ;pattern
  41.     jsr    <dopat
  42.     jsr    <iatest
  43.     jmp    <loop
  44.  
  45. iatest
  46.     move    #$1a,a
  47.     jsr    <disp        ;show which test
  48.     move    #start,r0
  49.     move    #len,x1
  50.     do    x1,iafill
  51.     move    r0,a
  52.     not    a
  53.     move    a,x:(r0)+
  54. iafill
  55.     move    #start,r0
  56.     move    #len,x1
  57.     do    x1,iacheck
  58.     move    x:(r0)+,a1
  59.     move    r0,b
  60.     not    b
  61.     move    b,x0
  62.     eor    x0,a
  63.     jne    <error
  64. iacheck
  65.  
  66.     rts
  67.  
  68. dopat
  69.     move    x0,n7
  70.     move    x0,a
  71.     jsr    <disp        ;show which pattern
  72.     move    n7,x0
  73.     move    #len,x1
  74.     jsr    <patfill
  75.     jsr    <patcheck
  76.     rts
  77.  
  78. patfill
  79.     move    #start,r0
  80.     do    x1,lfill
  81.     move    x0,x:(r0)+
  82. lfill
  83.     rts
  84.  
  85. patcheck
  86.     move    #start,r0
  87.     do    x1,lcheck
  88.     move    x:(r0)+,a1
  89.     eor    x0,a
  90.     jne    <error
  91. lcheck
  92.     rts
  93.  
  94. blink1    equ    300
  95. blink2    equ    4000
  96.  
  97. error
  98.     move    x0,a1
  99.     jsr    <disp        ;display error code
  100. eloop
  101.     bclr    #13,x:m_pbd
  102.     bclr    #14,x:m_pbd
  103.     do    #blink1,el1
  104.     rep    #blink2
  105.     nop
  106. el1
  107.     bset    #13,x:m_pbd
  108.     bset    #14,x:m_pbd
  109.     do    #blink1,el2
  110.     rep    #blink2
  111.     nop
  112. el2
  113.     jmp    <eloop
  114.  
  115. include 'disp.a56'
  116.